Why start here
Before setting up any voice infrastructure, test your flow in a terminal. You get the full end-to-end dialog experience - same logic, same LLM calls, same tool execution - with nothing but Python. This is also the recommended eval loop:- Build a flow
- Chat with it in the CLI
- Iterate on the prompt or flow structure
- Only then wire it into LiveKit / PipeCat / Unpod
Option 1: bundled CLI
If you already have aflow.json:
OPENAI_API_KEY / ANTHROPIC_API_KEY from your environment and runs the flow interactively.
Override the model:
Option 2: Python REPL loop
For more control - custom tool setup, custom model, traversal logging:Traversal history
Passtraversal_dir to save a timestamped JSON file for every completed session. Each file captures:
- Every node visited (in order)
- Every turn (user text + agent reply)
- All collected slot values
When to move to the next step
Once your flow behaves correctly in the CLI:- Wire it into LiveKit for voice
- Or add a FastAPI endpoint for a text chatbot
- Or connect to Unpod Voice Infra for full telephony